"use strict";
const BaseController = require("../base");

// 定义创建接口的请求参数规则
const getSpuSaleAttrListRule = {
  spuId: "string",
};

const saveBaseSaleAttrRule = {
  name: "string",
};

class SaleAttrsController extends BaseController {
  async getBaseSaleAttrList() {
    const ctx = this.ctx;
    const data = await ctx.service.product.saleAttrs.getBaseSaleAttrList();
    this.success(data);
  }
  async getSpuSaleAttrList() {
    const ctx = this.ctx;
    // 校验参数是否符合我们预期的格式
    // 如果参数校验未通过，将会抛出一个 status = 422 的异常
    const spuId = ctx.params.spuId;
    ctx.validate(getSpuSaleAttrListRule, { spuId });
    const data = await ctx.service.product.saleAttrs.getSpuSaleAttrList(spuId);
    this.success(data);
  }
  async saveBaseSaleAttr() {
    const ctx = this.ctx;
    // 校验参数是否符合我们预期的格式
    // 如果参数校验未通过，将会抛出一个 status = 422 的异常
    const body = ctx.request.body;
    ctx.validate(saveBaseSaleAttrRule, body);
    const data = await ctx.service.product.saleAttrs.saveBaseSaleAttr(body.name);
    this.success(data);
  }
}

module.exports = SaleAttrsController;
